<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Hierarchical File System</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Hierarchical_File_System"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Hierarchical_File_System rootpage-Hierarchical_File_System skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><i><span lang="en">Hierarchical File System</span></i></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p class="mw-empty-elt">
</p>
<p class="mw-empty-elt">
</p>
<table class="infobox_v2 infobox infobox--frwiki noarchive">
<tbody><tr>
<td colspan="2" class="entete informatique" style="background-color:#90EE90;color:black;">HFS<br><i><span class="lang-en" lang="en">Hierarchical File System</span></i><style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}
/* end https://fr.wikipedia.org/ */
</style>
</td></tr>
<tr><th scope="row">Développeur
</th>
<td><a href="Apple_Inc." class="mw-redirect" title="Apple Inc.">Apple Inc.</a>
</td>
</tr>
<tr>
<th scope="row">Nom anglais
</th>
<td>Hierarchical File System
</td>
</tr>
<tr>
<th scope="row">Introduction
</th>
<td><time class="nowrap" datetime="1985-07-17" data-sort-value="1985-07-17">17 juillet 1985</time><br>(<a href="Mac_OS" class="mw-redirect" title="Mac OS">System 2.1</a>)
</td>
</tr>
<tr>
<th scope="row"><a href="Partition_de_disque_dur#Identificateur_de_partition" class="mw-redirect" title="Partition de disque dur">Identificateur de partition</a>
</th>
<td><code>Apple HFS</code> (Apple Partition Map)<br><code>0xAF</code> (<a href="Master_Boot_Record" class="mw-redirect" title="Master Boot Record">MBR</a>)
</td>
</tr>
<tr>
<th colspan="2" style="padding:4px; text-align:center; background-color:#90EE90; color:#000000">Structure</th></tr>
<tr>
<th scope="row">Contenu des répertoires
</th>
<td><a href="Arbre_B" title="Arbre B">B* tree</a>
</td>
</tr>
<tr>
<th scope="row">Allocation de fichiers
</th>
<td><a href="Bitmap" class="mw-disambig" title="Bitmap">Bitmap</a>
</td>
</tr>
<tr>
<th scope="row">Mauvais blocs
</th>
<td><a href="Arbre_B" title="Arbre B">B* tree</a>
</td>
</tr>
<tr>
<th colspan="2" style="padding:4px; text-align:center; background-color:#90EE90; color:#000000">Limitations</th></tr>
<tr>
<th scope="row">Taille maximale de fichier
</th>
<td>2 <a href="Octet" title="Octet">Gio</a>
</td>
</tr>
<tr>
<th scope="row">Nombre maximal de fichiers
</th>
<td>65 535
</td>
</tr>
<tr>
<th scope="row">Taille maximale du nom de fichiers
</th>
<td>31 caractères
</td>
</tr>
<tr>
<th scope="row">Taille maximale de volume
</th>
<td>2 <a href="Octet" title="Octet">Tio</a>
</td>
</tr>
<tr>
<th scope="row">Caractères autorisés dans les noms de fichiers
</th>
<td>Toutes les valeurs 8-bit values<br>excepté « : ».
</td>
</tr>
<tr>
<th colspan="2" style="padding:4px; text-align:center; background-color:#90EE90; color:#000000">Fonctionnalités</th></tr>
<tr>
<th scope="row">Dates enregistrées
</th>
<td>Création, modification, backup
</td>
</tr>
<tr>
<th scope="row">Plage de dates
</th>
<td><abbr class="abbr" title="Premier">1<sup>er</sup></abbr> janvier 1904 - 6 février 2040
</td>
</tr>
<tr>
<th scope="row">Forks
</th>
<td>Seulement 2 (données et ressources)
</td>
</tr>
<tr>
<th scope="row">Attributs
</th>
<td>Couleur (3 bits), verrouillage, icônes personnalisable, archive, caché, alias, systeme, inited, no INIT resources, partage, bureau
</td>
</tr>
<tr>
<th scope="row">Permissions
</th>
<td>AppleShare
</td>
</tr>
<tr>
<th scope="row">Compression intégrée
</th>
<td>Oui (Troisième partie), Stacker
</td>
</tr>
<tr>
<th scope="row"><a href="Chiffrement" title="Chiffrement">Chiffrement</a> intégré
</th>
<td>Non
</td>
</tr>
<tr>
</tr>
</tbody></table>
<p>Le <i><b><span class="lang-en" lang="en">Hierarchical File System</span></b></i> (<b>HFS</b>), est un <a href="Syst%C3%A8me_de_fichiers" title="Système de fichiers">système de fichiers</a> propriétaire développé par <a href="Apple" title="Apple">Apple</a> pour le <a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">système d'exploitation</a> <a href="Mac_OS" class="mw-redirect" title="Mac OS">Mac OS</a>. Conçu à l'origine pour les <a href="Disquettes" class="mw-redirect" title="Disquettes">disquettes</a> et <a href="Disque_dur" title="Disque dur">disques durs</a>, il peut également être utilisé sur des médias en lecture seule, comme les <a href="CD-ROM" title="CD-ROM">CD-ROM</a>. HFS est généralement désigné par « Mac OS Standard », et son successeur <a href="HFS%2B" title="HFS+">HFS+</a> par « Mac OS étendu ».
</p><p>Le <i><span class="lang-en" lang="en">Hierarchical File System</span></i>, ou HFS, est aussi un autre système de fichiers utilisé dans <a href="Z/OS" title="Z/OS">z/OS</a>, un système d’exploitation <a href="International_Business_Machines" class="mw-redirect" title="International Business Machines">IBM</a> pour <a href="Ordinateur_central" title="Ordinateur central">mainframe</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Histoire">Histoire</h2></div>
<p>HFS a été introduit par <a href="Apple" title="Apple">Apple</a> en septembre 1985 pour remplacer <a href="Macintosh_File_System" title="Macintosh File System">Macintosh File System</a> (MFS), le système de fichiers d'origine qui a été présenté l'année précédente avec l'ordinateur <a href="Macintosh" title="Macintosh">Macintosh</a>. Développé par Patrick Dirks et Bill Bruffey, HFS partage un certain nombre de caractéristiques de conception avec MFS qui n'étaient pas disponibles dans d'autres systèmes de fichier de l'époque (tels que <a href="DOS" title="DOS">DOS</a> et <a href="File_Allocation_Table" title="File Allocation Table">FAT</a>). Les fichiers peuvent avoir plusieurs <a href="Fork_(syst%C3%A8me_de_fichiers)" title="Fork (système de fichiers)">forks</a>, ce qui permet au <a href="Code_source" title="Code source">code source</a> d’être stocké séparément des <a href="https://en.wikipedia.org/wiki/Resource_fork" class="extiw external" title="en:Resource fork">ressources <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr></a> telles que les <a href="Ic%C3%B4ne_(informatique)" title="Icône (informatique)">icônes</a> pour les rendre faciles à localiser (adapter à divers pays). Les dossiers ont été référencés avec des identifiants uniques de fichier plutôt que des <a href="Nom_de_fichier" class="mw-redirect" title="Nom de fichier">noms de fichier</a>, et les noms de fichiers peuvent être long de 255 caractères (bien que le <a href="Finder" title="Finder">Finder</a> supporte seulement 31 caractères).
</p><p>MFS a été optimisé pour être utilisé sur de très petits et lents médias, comme les <a href="Disquette" title="Disquette">disquettes</a>. HFS a été introduit de manière à surmonter certains des problèmes de performance liés à l'introduction de plus grands médias, et notamment les <a href="Disque_dur" title="Disque dur">disques durs</a>. La principale préoccupation est le temps nécessaire pour afficher le contenu d'un <a href="R%C3%A9pertoire_(informatique)" title="Répertoire (informatique)">dossier</a>. Sous MFS, toutes les informations des <a href="Fichier_informatique" title="Fichier informatique">fichiers</a> et <a href="R%C3%A9pertoire_(informatique)" title="Répertoire (informatique)">répertoires</a> ont été stockées dans un fichier unique, qui, pour le système de recherche, construisait une liste des fichiers stockés dans un <a href="R%C3%A9pertoire_(informatique)" title="Répertoire (informatique)">dossier</a> particulier. Cela a bien fonctionné avec un système de quelques centaines de <a href="Kilooctets" class="mw-redirect" title="Kilooctets">kilooctets</a> de stockage et une centaine de dossiers, mais comme les systèmes utilisaient des <a href="M%C3%A9gaoctets" class="mw-redirect" title="Mégaoctets">mégaoctets</a> et des milliers de fichiers, les performances se dégradaient rapidement.
</p><p>Pour s'adapter aux grands systèmes de fichiers, HFS remplace la table des fichiers par le <b>Catalog File</b>, qui utilise une structure <a href="Arbre_B" title="Arbre B">arbre B</a> et qui permet d'effectuer des recherches très rapidement quelle que soit la taille de l'<a href="Arborescence" title="Arborescence">arbre</a>. HFS a aussi remodelé diverses structures et, pour pouvoir organiser un plus grand nombre de fichiers, utilise des entiers 32 <abbr class="abbr" title="bits"><a href="Bit" title="Bit">bits</a></abbr> (au lieu de 16 <a href="Bit" title="Bit">bits</a>). Mais, comme pour MFS, le <b>Catalog File</b> lui-même limite HFS au stockage de 65 535 fichiers maximum.
</p><p>Alors que HFS est un système de fichiers propriétaire, il est fait de telle sorte qu'il existe des solutions d’utilisation des disques formatés HFS avec les <a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">systèmes d'exploitation</a> plus modernes.
</p><p>En 1998, Apple publie <a href="HFS%2B" title="HFS+">HFS+</a> à cause de la répartition inefficace de l'espace disque en HFS. Ce nouveau système de fichiers apporte d'autres améliorations. Bien que dès lors un volume HFS ne puisse plus être utilisé pour le <a href="Boot" class="mw-redirect" title="Boot">boot</a> (démarrage), les <a href="Volume_(informatique)" title="Volume (informatique)">volumes</a> HFS restent lisibles par les versions suivantes de Mac OS, jusque <a href="MacOS_Mojave" title="MacOS Mojave">Mojave</a> y compris.
</p>
<div class="mw-heading mw-heading2"><h2 id="Conception">Conception</h2></div>
<p>Le Hierarchical File System divise un <a href="Volume_(informatique)" title="Volume (informatique)">volume</a> logique en <a href="Bloc_de_syst%C3%A8me_de_fichiers" title="Bloc de système de fichiers">blocs</a> de 512 octets. Ces <a href="Bloc_de_syst%C3%A8me_de_fichiers" title="Bloc de système de fichiers">blocs</a> logiques sont ensuite regroupés dans des blocs d'<a href="File_Allocation_Table" title="File Allocation Table">allocation</a>, qui peuvent contenir un ou plusieurs blocs logiques en fonction de la taille totale. HFS utilise une valeur de 16 bits pour l'attribution d'adresse de blocs, ce qui limite le nombre de blocs d'allocation à 65 536.
</p><p>Il y a cinq structures qui forment un volume de HFS :
</p>
<ol><li>Les blocs logiques 0 et 1 du volume sont les secteurs de Boot qui contiennent des informations sur le démarrage du système. Par exemple, les noms du système et le <a href="Shell_(informatique)" class="mw-redirect" title="Shell (informatique)">Shell</a> (habituellement le <a href="Finder" title="Finder">Finder</a>) les fichiers qui sont chargés au démarrage.</li>
<li>Le bloc logique 2 contient le <b>Master Directory Block</b> (alias <b>MDB</b>). Ce MDB définit un large éventail d’informations sur le volume lui-même, par exemple les date et heure de création, l'emplacement d'autres volumes, les tailles des structures logiques et l'allocation des blocs. Il y a aussi un double de la MDB appelé Alternate Master Directory Block (alias <b>Alternate MDB</b>), situé à l'extrémité opposée du volume dans l’avant dernier bloc logique. Celui-ci sert principalement à l'usage des services publics et du disque quand la mise à jour du catalogue de fichiers ou Extents Overflow File sont installés.</li>
<li>Le bloc logique 3 est le départ du <b>Volume Bitmap</b>, qui garde la trace de l'allocation des blocs utilisés ou libres. Chaque bloc d'allocation sur le volume est représenté par une marque; S'il est libre, le bloc peut être utilisé. La taille du Volume Bitmap est déterminée par la taille du volume lui-même.</li>
<li>L’<b>Extents Overflow File</b> est un B *-tree qui permet au système de gérer les blocs défectueux dans un fichier.</li>
<li>Le <b>Catalogue de fichier</b> est un autre B *- tree, qui contient des enregistrements pour tous les fichiers et répertoires stockés dans le volume. Il stocke quatre types de documents. Chaque fichier est constitué d'un File Thread Record et d'un File Record tandis que chaque répertoire se compose d'un Directory Thread Record, Directory Record. Les fichiers et répertoires dans le catalogue de fichiers sont localisés par leur unique <b>Catalogue Node ID</b> (ou <b>CNID</b>).
<ul><li>Un <b>File Thread Record</b> stocke juste le nom du fichier et le CNID de son répertoire parent.</li>
<li>Un <b>File Record</b> stocke des métadonnées sur le fichier y compris ses CNID, la taille du fichier, trois dates (de création, de dernière modification et de dernière sauvegarde). Le fichier stocke également deux champs de 16 octets qui sont utilisés par le Finder pour stocker les attributs sur les fichiers.</li>
<li>Un <b>Directory Thread Record</b> stocke juste le nom du répertoire et le CNID de son répertoire parent.</li>
<li>Un <b>Directory Record</b> stocke les données comme le nombre de fichiers stockés dans le répertoire, le CNID du répertoire, trois dates (de création, de dernière modification et de dernière sauvegarde). Comme le File Record, le Directory Record stocke deux champs de 16 octets utilisés par le Finder. Pour stocker des informations d'affichage comme la largeur et la hauteur, les coordonnées x et y de la fenêtre, le mode d'affichage (icône, liste, etc.) et sa position dans la <a href="Barre_de_d%C3%A9filement" title="Barre de défilement">barre de défilement</a>.</li></ul></li></ol>
<div class="mw-heading mw-heading2"><h2 id="Problèmes"><span id="Probl.C3.A8mes"></span>Problèmes</h2></div>
<p>Le catalogue de fichier, qui stocke tous les fichiers et répertoires en une seule <a href="Structure_de_donn%C3%A9es" title="Structure de données">structure de données</a>, a des problèmes de performances. Lorsque le système permet le <a href="Multit%C3%A2che" title="Multitâche">multitâche</a>, un seul programme peut écrire sur un fichier à la fois, ce qui signifie que de nombreux programmes peuvent se retrouver dans la file d'attente à cause d’un « arc » dans le système. Dans ce cas, les dommages à un fichier peuvent détruire tout le système de fichiers. Cela contraste avec les autres systèmes de fichiers qui stockent les fichiers et les dossiers dans des structures distinctes (comme <a href="Microsoft" title="Microsoft">Microsoft</a> et FAT ou l’<a href="Unix_File_System" title="Unix File System">Unix File System</a>), où la structure est répartie dans l'ensemble du disque. Ce qui signifie qu'endommager un seul répertoire est généralement non-dangereux et les données peuvent éventuellement être récupérées dans la partie non endommagée.
</p><p>En outre, la limite de 65 535 allocations de blocs de fichiers (<a href="Partitionnement_de_donn%C3%A9es" title="Partitionnement de données">clusters</a>) abouti à des blocs minimum de taille équivalente à <span class="nowrap">1/65 535<sup>e</sup></span> de la taille du disque, même pour des fichiers ne contenant que quelques octets. Quand les disques étaient petits, cela était peu important, car la taille des blocs d'allocation individuelle était réduite, mais dès que les disques ont commencé à approcher le 1 <abbr class="abbr" title="gibioctet"><a href="Gibioctet" class="mw-redirect" title="Gibioctet">Gio</a></abbr>, cette taille de bloc minimum est devenu trop grande, gaspillant beaucoup d'espace disque. Par exemple, sur un disque de 1 <abbr class="abbr" title="gibioctet"><a href="Gibioctet" class="mw-redirect" title="Gibioctet">Gio</a></abbr>, la taille des blocs d'allocation avec HFS est de 16 kio, même pour un fichier de 1 octet. Cette situation est moins problématique pour les utilisateurs ayant de gros fichiers (comme les images, <a href="Base_de_donn%C3%A9es" title="Base de données">bases de données</a> ou audio), qui gaspillent moins d'espace. Les utilisateurs disposant d'un grand nombre de petits fichiers, d'autre part, pourraient perdre une abondante quantité d'espace due à la taille des blocs d'allocation. Un découpage disque réalisé en petits <a href="Gestion_par_volumes_logiques" title="Gestion par volumes logiques">volumes logiques</a> (<a href="Partition_(informatique)" title="Partition (informatique)">partitions</a>) est très attrayant pour les utilisateurs de Mac, parce que les petits documents stockés sur un plus petit volume prendraient beaucoup moins de place que sur une grande partition. Le même problème existe dans le <a href="FAT16" title="FAT16">FAT16</a>.
</p><p>L'heure de création ou de modification est l'heure local. Ce qui a posé un problème lors du passage en <a href="HFS%2B" title="HFS+">HFS+</a> qui stocke l'heure GMT.
</p>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer skin-invert-image" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail d’<span class="lang-en" lang="en">Apple</span></span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2024-09-12" href="https://fr.wikipedia.org/wiki/?title=Hierarchical_File_System&oldid=218575253">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>